package com.zb.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zb.entity.ZjStoreType;
import com.zb.vo.StoreTypeListSelectVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * <p>
 * 仓储类型表 Mapper 接口
 * </p>
 *
 * @author WEN
 * @since 2024-01-06
 */
@Repository
public interface ZjStoreTypeMapper extends BaseMapper<ZjStoreType> {

    /**
     * 批量启用或禁用仓库类型
     * @param ids 仓库类型ID集合
     * @param status 仓库类型状态：false-启用，true-禁用
     */
    int updateDisableBatchById(@Param("ids") List<Long> ids, @Param("status") Boolean status);

    /**
     * 根据ID批量删除仓库类型
     * @param ids
     * @return
     */
    int deleteBatchById(@Param("ids") List<Long> ids);

    /**
     * 查询仓库类型是否存在
     * @param custAccId 商家ID
     * @param type 类型：1-入库，2-出库
     * @param id 仓库类型ID
     * @param name 仓库类型名称
     * @return
     */
    Integer existByName(@Param("custAccId") Long custAccId, @Param("type") Integer type, @Param("id") Long id, @Param("name") String name);

    /**
     * 获取仓库类型列表
     * @param custAccId 商家ID
     * @param selectVo 搜索条件
     * @return
     */
    List<ZjStoreType> getList(@Param("custAccId") Long custAccId, @Param("selectVo") StoreTypeListSelectVo selectVo);

    /**
     * 获取仓库类型列表总记录数
     * @param custAccId 商家ID
     * @param selectVo 搜索条件
     * @return
     */
    long getListCount(@Param("custAccId") Long custAccId, @Param("selectVo") StoreTypeListSelectVo selectVo);

    /**
     * 根据商家ID获取默认出库工单配件的类型ID
     * @param custAccId 商家ID
     * @return
     */
    Long getOutStoreOrderSpareTypeIdByCustAccId(@Param("custAccId") Long custAccId);

    /**
     * 根据商家ID获取默认入库工单配件的类型ID
     * @param custAccId 商家ID
     * @return
     */
    Long getInStoreOrderSpareTypeIdByCustAccId(@Param("custAccId") Long custAccId);

}
